/**
 * Created by Administrator on 2016/12/22.
 */		
 $(function () {
   	domOperation();		//dom渲染函数
    eventOperation();	//事件操作函数
});
 
//dom渲染函数
function domOperation(){
	getRoleControlAllModel();//ajax获取角色管理所有模块信息
}


//事件操作函数
function eventOperation(){
	//点击管理人员ajax加载管理员权限roleId=1
	var $tab=$("#tab-first li")
	$tab.eq(0).on("click",defaultLoadAdminCompetence);
	//加载操作员权限roleId=2
	$tab.eq(1).on("click",loadOperatorCompetence);
	//加载审核员权限roleId=3
	$tab.eq(2).on("click",loadAssessorCompetence);
	//显示隐藏权限内容
	var showHideFlag=true;
	$(".showHide").bind("click",function(){
		if(showHideFlag){
			$(this).siblings("div").show();
		}else{
			$(this).siblings("div").hide();
		}
		return showHideFlag=!showHideFlag;
	});
	//管理员
	//全选或全不选按钮
	$(".checkBox1").bind("click",function(){
		if(this.checked){
			$(".adminCheck1").prop("checked",true);
			$(".from-main").eq(0).find(".secondCheck").prop("checked",true);
		}else{
			$(".adminCheck1").prop("checked",false);
			$(".from-main").eq(0).find(".secondCheck").prop("checked",false);
		}
		event.stopPropagation();
	});
	
	//全选
	$(".choseAll1").on("click",function(){
		$(".checkBox1").prop("checked",true)
		$(".adminCheck1").prop("checked",true);
		$(".from-main").eq(0).find(".secondCheck").prop("checked",true);
	});
	//全不选
	$(".delete1").on("click",function(){
		$(".checkBox1").prop("checked",false)
		$(".adminCheck1").prop("checked",false);
		$(".from-main").eq(0).find(".secondCheck").prop("checked",false);
	});
	//判断选了多少是否达到全选状态
	$(".from-main").eq(0).find("input[type='checkbox']").on("click",function(){
		autoChecka();
	});
	function autoChecka(){
		var checkedNum=$(".from-main").eq(0).find("input[type='checkbox']").size();
		var num=0;
		$(".from-main").eq(0).find("input[type='checkbox']").each(function(){
			if($(this).prop("checked")==true){
				num++;
			}
			if(num==checkedNum){
				$(".checkBox1").prop("checked",true);
			}else{
				$(".checkBox1").prop("checked",false);
			}
		})
	}
	
	//操作员
	//全选或全不选按钮
	$(".checkBox2").bind("click",function(){
		if(this.checked){
			$(".adminCheck2").prop("checked",true);
			$(".from-main").eq(1).find(".secondCheck").prop("checked",true);
		}else{
			$(".adminCheck2").prop("checked",false);
			$(".from-main").eq(1).find(".secondCheck").prop("checked",false);
		}
		event.stopPropagation();
	});
	
	//全选
	$(".choseAll2").on("click",function(){
		$(".checkBox2").prop("checked",true)
		$(".adminCheck2").prop("checked",true);
		$(".from-main").eq(1).find(".secondCheck").prop("checked",true);
	});
	//全不选
	$(".delete2").on("click",function(){
		$(".checkBox2").prop("checked",false)
		$(".adminCheck2").prop("checked",false);
		$(".from-main").eq(1).find(".secondCheck").prop("checked",false);
	});
	//判断选了多少是否达到全选状态
	$(".from-main").eq(1).find("input[type='checkbox']").on("click",function(){
		autoCheckb();
	});
	function autoCheckb(){
		var checkedNum=$(".from-main").eq(1).find("input[type='checkbox']").size();
		var num=0;
		$(".from-main").eq(1).find("input[type='checkbox']").each(function(){
			if($(this).prop("checked")==true){
				num++;
			}
			if(num==checkedNum){
				$(".checkBox2").prop("checked",true);
			}else{
				$(".checkBox2").prop("checked",false);
			}
		})
	}
	
	
	//审核员
	//全选或全不选按钮
	$(".checkBox1").bind("click",function(){
		if(this.checked){
			$(".adminCheck1").prop("checked",true);
			$(".from-main").eq(0).find(".secondCheck").prop("checked",true);
		}else{
			$(".adminCheck1").prop("checked",false);
			$(".from-main").eq(0).find(".secondCheck").prop("checked",false);
		}
		event.stopPropagation();
	});
	
	//全选
	$(".choseAll3").on("click",function(){
		$(".checkBox3").prop("checked",true)
		$(".adminCheck3").prop("checked",true);
		$(".from-main").eq(2).find(".secondCheck").prop("checked",true);
	});
	//全不选
	$(".delete3").on("click",function(){
		$(".checkBox3").prop("checked",false)
		$(".adminCheck3").prop("checked",false);
		$(".from-main").eq(2).find(".secondCheck").prop("checked",false);
	});
	//判断选了多少是否达到全选状态
	$(".from-main").eq(2).find("input[type='checkbox']").on("click",function(){
		autoCheckc();
	});
	function autoCheckc(){
		var checkedNum=$(".from-main").eq(2).find("input[type='checkbox']").size();
		var num=0;
		$(".from-main").eq(2).find("input[type='checkbox']").each(function(){
			if($(this).prop("checked")==true){
				num++;
			}
			if(num==checkedNum){
				$(".checkBox3").prop("checked",true);
			}else{
				$(".checkBox3").prop("checked",false);
			}
		})
	}
	
	//保存改变的权限
	var $saveChange=$(".saveChange");
	$saveChange.each(function(i){
		$saveChange.eq(i).on("click",function(){
		var result=[];
		var $firstCheck=$(".from-main").eq(i).find(".userCheck");
		for(var j=0;j<$firstCheck.length;j++){
			if($firstCheck.eq(j).prop("checked")==true){
				var $secondCheck=$firstCheck.eq(j).siblings().find(".secondCheck");
				for(var k=0;k<$secondCheck.length;k++){
					if($secondCheck.eq(k).prop("checked")==true){
						result.push($firstCheck.eq(j).next().prop("modelId"));
						result.push($secondCheck.eq(k).next().prop("modelId"));
					}
				}
			}
		}
		//去重
		Array.prototype.unique = function(){
			 var res = [];
			 var json = {};
			 for(var x = 0; x < this.length; x++){
			  if(!json[this[x]]){
			   res.push(this[x]);
			   json[this[x]] = 1;
			  }
			 }
			 return res;
			}
		result=result.unique();
		result=result.toString();
		console.log(result)
		if(result!=""){
			$.ajax({
				type:"GET",
				url:`http://192.168.59.3:8082/console/user/updateRole?roleId=${i+1}&modelIds=1`,
				data:result,
				success:function(res){
					console.log(res)
				},
				error:function(XMLHttpRequest, textStatus, errorThrown) {
					 console.log(XMLHttpRequest.status);
					 console.log(XMLHttpRequest.readyState);
					 console.log(textStatus);
						}
				});
				}
			})
		})

} 
 
//ajax获取角色管理所有模块信息
function getRoleControlAllModel(){
	$.get("http://192.168.59.3:8082/console/user/getModelList",function(res){
		var res=JSON.parse(res).data;
		for(var i=0;i<res.length;i++){
			$(".Tab1 .firstTab").eq(i).val(res[i].modelName);
			$(".Tab1 .firstTab").eq(i).prop("modelId",res[i].modelId);
			$(".Tab2 .firstTab").eq(i).val(res[i].modelName);
			$(".Tab2 .firstTab").eq(i).prop("modelId",res[i].modelId);
			$(".Tab3 .firstTab").eq(i).val(res[i].modelName);
			$(".Tab3 .firstTab").eq(i).prop("modelId",res[i].modelId);
			var  a=res[i].modelBean;
			for(var j=0;j<a.length;j++){
				$(".secondTab1").eq(i).children(".cont").eq(j).val(a[j].modelName);
				$(".secondTab1").eq(i).children(".cont").eq(j).prop("modelId",a[j].modelId);
				$(".secondTab2").eq(i).children(".cont").eq(j).val(a[j].modelName);
				$(".secondTab2").eq(i).children(".cont").eq(j).prop("modelId",a[j].modelId);
				$(".secondTab3").eq(i).children(".cont").eq(j).val(a[j].modelName);
				$(".secondTab3").eq(i).children(".cont").eq(j).prop("modelId",a[j].modelId);
				console.log($(".secondTab3").eq(i).children(".cont").eq(j).val()+":"+$(".secondTab3").eq(i).children(".cont").eq(j).prop("modelId"))
			}
		}
		defaultLoadAdminCompetence();//默认加载管理员权限roleid=1
	})
}

//默认加载管理员权限roleid=1
function defaultLoadAdminCompetence(){
	$("#tab2Content1").find("input[type='checkbox']").prop("checked",false);
	$("#tab2Content1").find(".secondTab1").hide();
	$.get("http://192.168.59.3:8082/console/user/getModelListByRoleId?roleId=1",function(res){
			var oData=JSON.parse(res).data;
			console.log(1);
			for(var x=0;x<oData.length;x++){
				var result=oData[x].modelBean;
				var arr=[];
				for(var y=0;y<result.length;y++){
					arr.push(result[y].modelName);
				}
				for(var z=0;z<arr.length;z++){
					for(var k=0;k<$(".secondTab1 .cont").length;k++){
						if($(".secondTab1 .cont").eq(k).val()==arr[z]){
							$(".secondTab1 .cont").eq(k).prev().prop("checked",true);
							$(".secondTab1 .cont").eq(k).parent().siblings(".adminCheck1").prop("checked",true);
						}
					}
				}
			}
	})
}

//加载操作员权限roleId=2
function loadOperatorCompetence(){
	$("#tab2Content2").find("input[type='checkbox']").prop("checked",false);
		$("#tab2Content2").find(".secondTab2").hide();
		$.get("http://192.168.59.3:8082/console/user/getModelListByRoleId?roleId=2",function(res){
			var oData=JSON.parse(res).data;
			console.log(2);
			for(var x=0;x<oData.length;x++){
				var result=oData[x].modelBean;
				var arr=[];
				for(var y=0;y<result.length;y++){
					arr.push(result[y].modelName);
				}
				for(var z=0;z<arr.length;z++){
					for(var k=0;k<$(".secondTab2 .cont").length;k++){
						if($(".secondTab2 .cont").eq(k).val()==arr[z]){
							$(".secondTab2 .cont").eq(k).prev().prop("checked",true);
							$(".secondTab2 .cont").eq(k).parent().siblings(".adminCheck2").prop("checked",true);
						}
					}
				}
			}
		});
}

//加载审核员权限roleId=3
function loadAssessorCompetence(){
	$("#tab2Content3").find("input[type='checkbox']").prop("checked",false);
		$("#tab2Content3").find(".secondTab3").hide();
		$.get("http://192.168.59.3:8082/console/user/getModelListByRoleId?roleId=3",function(res){
			var oData=JSON.parse(res).data;
			console.log(3)
			for(var x=0;x<oData.length;x++){
				var result=oData[x].modelBean;
				var arr=[];
				for(var y=0;y<result.length;y++){
					arr.push(result[y].modelName);
				}
				for(var z=0;z<arr.length;z++){
					for(var k=0;k<$(".secondTab3 .cont").length;k++){
						if($(".secondTab3 .cont").eq(k).val()==arr[z]){
							$(".secondTab3 .cont").eq(k).prev().prop("checked",true);
							$(".secondTab3 .cont").eq(k).parent().siblings(".adminCheck3").prop("checked",true);
						}
					}
				}
			}
		});
}


